Machine Learning - L6 Notes

Contents

  1. 1. Classification: Logistic Regression (L6)
    1. 1.1. Step 1 : Function Set
    2. 1.2. Step 2 : Goodness of a Function
      1. 1.2.1. cross entropy v.s square error
    3. 1.3. Step 3 : Find the best function
    4. 1.4. Discriminative v.s. Generative
    5. 1.5. Limitation of Logistic Regression

Classification: Logistic Regression (L6)

另一種方法。

Step 1 : Function Set

如果我們現在要求的 posterior probability 就是將 $z = w\cdot x + b$ 代進 sigmoid function 的結果。

我們的 function set 就是由不同 $w,b$ 的 function 所組成。

6-2

用圖形來表示:

6-3

而這樣的作法叫做 Logistic Regression

比較一下最開始講的 Linear Regression

6-4

Logistic Regression 會通過 sigmoid function 所以 output 會介於 0 ~ 1
Linear Regression 則可能是任何值。

Step 2 : Goodness of a Function

給定 $w,b$ 後,我們就能求出產生這樣一筆 training data 的機率為何,
也就是圖中的 $L(w,b)$ ,likelihood function。

而其中最好的 $w,b$ 就是能使 $L(w,b)$ 最大化 的。

6-5

為了方便計算我們可以把它轉換成找 $-lnL(w,b)$ 的 最小值

6-6

而與 linear 在 loss function 上是 不一樣 的,
logistic 需要使用 cross entropy ,而 linear 的則是之前就看過的 square error

6-8

cross entropy v.s square error

(數學推導部分就不貼了)

6-15

假設中間就是我們的目標(function),其 loss 值很小。

用 square error ,如果產生出的結果離目標很近,它微分的值自然 很小
然而在離目標很遠的時候,它微分的值仍然 很小,導致非常平坦,在 update 時會很卡(步伐小)。
我們也不能隨意更改 learning rate 因為在離目標很近,我們需要較小的步伐。

如果用 cross entropy ,距離目標越遠,微分值則越大,在 update 參數時速度越快(步伐越大)。

Step 3 : Find the best function

接下來要做的就是要找一個最好的 function ,也就是要去最小化我們的 $-lnL(w,b)$。
利用 gradient descent(對 $-lnL(w,b)$ 做偏微分然後 update $w_i$ ):

6-11

省略中間的過程,最後一項中間(紫線),它代表著我們 $f$ 產生出來的結果和理想的差距有多大,差越多我們 update 的量就會越大。

在 linear regression 上,兩者的 update 算式是 一樣 的,
差別在於 $\hat{y}^n$,logistic 的會是 0 或 1 ,而 linear 的會是任意實數。
還有 $f$ 的輸出,logistic 的會是 0~1 ,而 linear 的會是任意實數。

6-12

Discriminative v.s. Generative

上一章節(L5)所講的是利用常態分布(Gaussian distribution) 來描述 Posterior Probability 的方法,稱為 Generative model 。(covariance matrix 設成是共用的)
如果是 Logistic Regression 的話,我們稱之為 Discriminative model。

6-16

如果是 Logistic Regression ,我們可以直接去把 $w,b$ 找出來(gradient descent)。
如果是 Generative model 則是先算出那些參數,再代進去求 $w,b$ 。

它們的 function set 和 training data 是一樣的,但因為我們做了不同的假設,所以最後找出來的參數( $w,b$ )會是不一樣的。
(我們在 Logistic Regression 沒有對機率分布做其他假設)

而哪一個產生的結果會比較好呢?用一個簡單的例子來看。

6-18

每一個 class 都有兩個 feature,當都是 1 的時候就是 class 1 ,另外三種是 class 2。

我們利用 Naive Bayes 來看看, 當 testing data 的兩個 feature 都是 1 時,屬於哪個 class 的機率比較高?
我們假設所有 feature 是獨立的,那 x 從 $C_i$ 產生出來的機率,就會等於其各個 feature 從 $C_i$ 產生出來的機率。

算出來各項後,我們就可以來算 x 屬於 class 1 的條件機率了。($<0.5$)

6-20

結果跟我們預想的不太一樣,對 naive bayes 來說它覺得這筆資料應該屬於 class 2 ,這是因為 naive bayes 自行腦補了 class 2 裡有這樣一筆資料(ㄏㄏ…)。
同樣的在 Generative 裡我們也自行假設了一些狀況,通常腦補會帶來比較差的效果。

何時 Generative 會比較好呢?

6-21

  1. 因為 discriminative 受資料量的影響比較大。所以在資料量較少時,generative 可能會效果比較好,因為它可能會遵從自己的假設,而無視資料。

  2. 資料本身有雜訊,而此時自行的假設可能會帶來較好的結果。

Limitation of Logistic Regression

有時會有無法學習的情形,像是圖中的例子就做不到,我們找不到一條線來分紅和藍的點。
(在 Deep and Structured L2 有)

6-24

此時我們就可以利用串接 Logistic Regression ,前半部分是在做 Feature Transformation ,我們可以得到另外一組 feature,後半部分則是 classification

6-27

(圖中座標有誤)
6-29

此時就可以做到從中分一條線了。

而這樣子把 Logistic Regression 接在一起,
每一個 Logistic Regression 叫做一個 Neuron,很多個 Neuron 串起來就叫 Neural Network
這樣子的東西就叫做 Deep Learning

6-30